<?php
defined('BASEPATH') OR exit('No direct script access allowed');

// include '../ImportData.php';
/**
 * 地区控制器-后台
 * 
 * @desc    地区控制器
 * @version 1.0.0 
 * @author  Jason
 * @date    2017年5月2日 下午5:09:07
 * 
 * @desc    完善文档注释
 * @version 1.1.0
 * @date	2017年6月27日 下午4:46:59
 * 
 * @title 地区管理
 * @entry http://discovery.segway.com
 */
class Area extends MY_Manager_Controller
{
	// Must be public!!!
	/** @var Mod_area */
	public $mod_area = null;
	
	/** @var Lib_area */
	public $lib_area = null;
	
	/** @var Lib_language */
	public $lib_language = null;
	
	public function __construct()
	{
		parent::__construct();
		$this->load->database();
		
		$this->load->model('mod_area');
		$this->load->library('lib_area');
		
	}
	
	/**
	 * 查看地区多语言信息
	 *
	 * @desc    查看地区各种语言的信息
	 * @method  POST
	 * @author  Jason
	 * @date	2017年5月3日 下午6:17:09
	 *
	 * @param   number	$id
	 *
	 * @return  html
	 * 
	 * @demoParam id 693000
	 */
	public function view_language($id)
	{
		$item = $this->mod_area->select_instance_by_id($id);
		
		$metrix = [];
		$module = $this->mod_area->get_multi_language_info('module', 'master');
		$language_mapper = $this->config->item('supported_languages', 'multi_language');
		foreach ($language_mapper as $language => $text) {
			$merged = $this->lib_language->get_merged_item_data($item, $module, $language);
			$array = [
					'ml_name' => $language,
					'ml_text' => $text,
					'data' => $merged,
			];
			$metrix[] = $array;
		}
		
		$data['content']['data'] = $metrix;
		$this->load->vars($data);
		
// 		$this->load->view('manage/area/view_language', $data);
	}
	
	// TO DO comment it
	// use controllers\ImportData;
	
	/**
	 * 创建地区接口
	 *
	 * @desc    创建地区，POST请求
	 * @method  POST
	 * @author  Jason
	 * @date	2017年5月3日 下午6:17:09
	 * 
	 * @param   string	$language
	 * @param   $name, $parent_id, $short_name, $latitude, $longitude, $sort_order
	 * 
	 * @return  JSON	标准JSON格式响应
	 * 
	 * @link    /manage/area/ajax_create
	 * 
	 * @command noneurl
	 */
	public function ajax_create()
	{
		list($status, $content) = $this->lib_area->create();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			$this->load->helper('url');
			$success_url = site_url('area/view/'.$content['id']);
			Lib_json::renderSuccess(['data' => $content, 'show_url'=>$success_url], 'success');
		}
	}
	
	/**
	 * 创建地区多语言接口
	 *
	 * @desc    创建地区多语言，POST请求
	 * @method  POST
	 * @author  Jason
	 * @date	2017年5月3日 下午6:27:38
	 * 
	 * @param   $resource, $language, $name, $short_name
	 * 
	 * @return  JSON	标准JSON格式响应
	 * 
	 * @link    /manage/area/ajax_create_language
	 * 
	 * @command noneurl
	 */
	public function ajax_create_language()
	{
		list($status, $content) = $this->lib_area->create_language();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 删除地区
	 *
	 * @desc	直接删除地区，删除前做检查
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月28日 下午7:08:06
	 *
	 * @param	number $id	地区ID
	 *
	 * @return	JSON	标准JSON格式响应
	 *
	 * @link	/manager/area/ajax_delete
	 *
	 * @command noneurl
	 */
	public function ajax_delete()
	{
		list($status, $content) = $this->lib_area->delete();
		
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess([]);
		}
	}
	
	/**
	 * 获取子级地区列表
	 *
	 * @desc    description
	 * @method  GET
	 * @author  Jason
	 * @date    2017年5月4日 下午3:16:58
	 * @param   number $parent_id 默认为 0
	 * @param   string $language  默认为 "english"
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 parent_id=693000 language=chinese
	 * 			那么URL为 /manage/area/ajax_list_children/693000/chinese
	 * 			以下都是合法的 URL:
	 * 				/manage/area/ajax_list_children/
	 * 				/manage/area/ajax_list_children/693000/
	 * 				/manage/area/ajax_list_children/693000/chinese
	 *
	 * @return  JSON	标准JSON格式响应
	 * 
	 * @link    /manage/area/ajax_list_children
	 * 
	 * @demoParam parent_id 693000
	 * @demoParam language chinese
	 */
	public function ajax_list_children($parent_id = 0, $language = '')
	{
		//$parent_id = $parent_id ? $parent_id : $this->input->get_post('parent_id');
		//$user_lang = $language ? $language : $this->input->get_post('language');
		$user_lang = $language;
		$cookie_lang = $this->lib_cookie->get_language();
		$language = $this->lib_language->get_supported_language($user_lang, $cookie_lang);
		
		list($status, $content) = $this->lib_area->list_children($parent_id, $language);
		
		foreach ($content as $key => $row) {
			# $volume[$key]  = $row['name'];
			$volume[$key]  = iconv('UTF-8', 'GBK', $row['name']);
		}
		array_multisort($volume, SORT_ASC, SORT_LOCALE_STRING, $content);
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content]);
		}
	}
	
}